<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Pin: KNOB: Commandline Option Handling</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Pin
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">KNOB: Commandline Option Handling<div class="ingroups"><a class="el" href="group__UTIL__REF.html">Utilities API Reference</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNOBVALUE.html">KNOBVALUE&lt; TYPE &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNOBVALUE__LIST.html">KNOBVALUE_LIST&lt; TYPE &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNOB__BASE.html">KNOB_BASE</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNOB.html">KNOB&lt; TYPE &gt;</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classKNOB__COMMENT.html">KNOB_COMMENT</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classADDRESS__RANGE.html">ADDRESS_RANGE</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga01b1a33077e2fdfab743da94c406dce3"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__KNOBS.html#ga01b1a33077e2fdfab743da94c406dce3">KNOB_MODE</a> { <br />
&#160;&#160;<b>KNOB_MODE_INVALID</b>, 
<br />
&#160;&#160;<a class="el" href="group__KNOBS.html#gga01b1a33077e2fdfab743da94c406dce3a0e000b764855535c8a3e1e760eb6b1b0">KNOB_MODE_COMMENT</a>, 
<br />
&#160;&#160;<a class="el" href="group__KNOBS.html#gga01b1a33077e2fdfab743da94c406dce3a481b1b4bfea2ef7e5d78a540baf2ccab">KNOB_MODE_WRITEONCE</a>, 
<br />
&#160;&#160;<a class="el" href="group__KNOBS.html#gga01b1a33077e2fdfab743da94c406dce3a8333cb5099c6389724243859d29e2152">KNOB_MODE_OVERWRITE</a>, 
<br />
&#160;&#160;<a class="el" href="group__KNOBS.html#gga01b1a33077e2fdfab743da94c406dce3a562eddcaa2e28898581fa32c0fbe80c7">KNOB_MODE_ACCUMULATE</a>, 
<br />
&#160;&#160;<a class="el" href="group__KNOBS.html#gga01b1a33077e2fdfab743da94c406dce3accb9cc7e7df2e0b3eb0b89cd1eabede4">KNOB_MODE_APPEND</a>, 
<br />
&#160;&#160;<b>KNOB_MODE_LAST</b>
<br />
 }</td></tr>
<tr class="separator:ga01b1a33077e2fdfab743da94c406dce3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gae687bfe5eaee90493c5ebb582da31f74"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__KNOBS.html#gae687bfe5eaee90493c5ebb582da31f74">KNOB_BASE::KNOB_BASE</a> (const std::string &amp;myprefix, const std::string &amp;myname, const std::string &amp;myfamily, const std::string &amp;mydefault, const std::string &amp;mypurpose, <a class="el" href="group__KNOBS.html#ga01b1a33077e2fdfab743da94c406dce3">KNOB_MODE</a> mymode=<a class="el" href="group__KNOBS.html#gga01b1a33077e2fdfab743da94c406dce3a481b1b4bfea2ef7e5d78a540baf2ccab">KNOB_MODE_WRITEONCE</a>)</td></tr>
<tr class="separator:gae687bfe5eaee90493c5ebb582da31f74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2fcfca47402cd938d252057d069f8d5f"><td class="memItemLeft" align="right" valign="top">STATIC VOID&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__KNOBS.html#ga2fcfca47402cd938d252057d069f8d5f">KNOB_BASE::CheckAllKnobs</a> (BOOL allowDashes=FALSE)</td></tr>
<tr class="separator:ga2fcfca47402cd938d252057d069f8d5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6ea4921d7034f43bb963f4f90b6399dc"><td class="memItemLeft" align="right" valign="top">STATIC UINT32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__KNOBS.html#ga6ea4921d7034f43bb963f4f90b6399dc">KNOB_BASE::NumberOfKnobs</a> ()</td></tr>
<tr class="separator:ga6ea4921d7034f43bb963f4f90b6399dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad656bbb39020e93d3473e1b487f10454"><td class="memItemLeft" align="right" valign="top">STATIC VOID&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__KNOBS.html#gad656bbb39020e93d3473e1b487f10454">KNOB_BASE::DisableKnobFamily</a> (const std::string &amp;myfamily)</td></tr>
<tr class="separator:gad656bbb39020e93d3473e1b487f10454"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga425fd0c8dcca5474e370996bdf8d7e4f"><td class="memItemLeft" align="right" valign="top">STATIC VOID&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__KNOBS.html#ga425fd0c8dcca5474e370996bdf8d7e4f">KNOB_BASE::EnableKnobFamily</a> (const std::string &amp;myfamily)</td></tr>
<tr class="separator:ga425fd0c8dcca5474e370996bdf8d7e4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7c9e1403f7c8a6fba37c3ac996d6be95"><td class="memItemLeft" align="right" valign="top">STATIC VOID&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__KNOBS.html#ga7c9e1403f7c8a6fba37c3ac996d6be95">KNOB_BASE::DisableKnob</a> (const std::string &amp;myname)</td></tr>
<tr class="separator:ga7c9e1403f7c8a6fba37c3ac996d6be95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7f643695d61e52c3661520856d833227"><td class="memItemLeft" align="right" valign="top">STATIC VOID&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__KNOBS.html#ga7f643695d61e52c3661520856d833227">KNOB_BASE::EnableKnob</a> (const std::string &amp;myname)</td></tr>
<tr class="separator:ga7f643695d61e52c3661520856d833227"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6fbe7181260cd701b0fa884c2958074e"><td class="memItemLeft" align="right" valign="top">STATIC std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__KNOBS.html#ga6fbe7181260cd701b0fa884c2958074e">KNOB_BASE::StringKnobSummary</a> ()</td></tr>
<tr class="separator:ga6fbe7181260cd701b0fa884c2958074e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaddac5ec80d3b48ee9a0ee09a561129e5"><td class="memItemLeft" align="right" valign="top">STATIC std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__KNOBS.html#gaddac5ec80d3b48ee9a0ee09a561129e5">KNOB_BASE::StringLongAll</a> ()</td></tr>
<tr class="separator:gaddac5ec80d3b48ee9a0ee09a561129e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacd1f4eb7e9c4b3aa933cf62d3612e31c"><td class="memItemLeft" align="right" valign="top">STATIC <a class="el" href="classKNOB__BASE.html">KNOB_BASE</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__KNOBS.html#gacd1f4eb7e9c4b3aa933cf62d3612e31c">KNOB_BASE::FindKnob</a> (const std::string &amp;name)</td></tr>
<tr class="separator:gacd1f4eb7e9c4b3aa933cf62d3612e31c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafdae42294d965667722be42650912e40"><td class="memItemLeft" align="right" valign="top">STATIC <a class="el" href="classKNOB__BASE.html">KNOB_BASE</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__KNOBS.html#gafdae42294d965667722be42650912e40">KNOB_BASE::FindFamily</a> (const std::string &amp;name)</td></tr>
<tr class="separator:gafdae42294d965667722be42650912e40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga774759bc7958969faaf7c0ab2b54140e"><td class="memItemLeft" align="right" valign="top">STATIC <a class="el" href="classKNOB__BASE.html">KNOB_BASE</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__KNOBS.html#ga774759bc7958969faaf7c0ab2b54140e">KNOB_BASE::FindEnabledKnob</a> (const std::string &amp;name)</td></tr>
<tr class="separator:ga774759bc7958969faaf7c0ab2b54140e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacd9de79dcbf4f1a1c81b49b855946f21"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__KNOBS.html#gacd9de79dcbf4f1a1c81b49b855946f21">KNOB_BASE::Compare</a> (const <a class="el" href="classKNOB__BASE.html">KNOB_BASE</a> &amp;k2) const</td></tr>
<tr class="separator:gacd9de79dcbf4f1a1c81b49b855946f21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga705f2dbe45c3440e13b67e7921ad1625"><td class="memItemLeft" align="right" valign="top">VOID&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__KNOBS.html#ga705f2dbe45c3440e13b67e7921ad1625">KNOB_BASE::TurnOnSetByUser</a> ()</td></tr>
<tr class="separator:ga705f2dbe45c3440e13b67e7921ad1625"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga39dcece2c6dd3d8c4662af611da7d9d5"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__KNOBS.html#ga39dcece2c6dd3d8c4662af611da7d9d5">KNOB_BASE::SetByUser</a> () const</td></tr>
<tr class="separator:ga39dcece2c6dd3d8c4662af611da7d9d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:ga5cc9d51c1b4a85ad8c61e6861989f4e4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classKNOB.html">KNOB</a>&lt; BOOL &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__KNOBS.html#ga5cc9d51c1b4a85ad8c61e6861989f4e4">KnobSlowAsserts</a></td></tr>
<tr class="separator:ga5cc9d51c1b4a85ad8c61e6861989f4e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Knobs automate the parsing and management of command line switches. A command line contains switches for Pin, the tool, and the application. The knobs parsing code understands how to separate them.</p>
<dl class="section user"><dt>Availability:</dt><dd><b>Mode:</b> JIT &amp; Probe<br  />
<b>O/S</b>: Linux &amp; Windows<br  />
<b>CPU:</b> All<br  />
</dd></dl>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="ga01b1a33077e2fdfab743da94c406dce3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga01b1a33077e2fdfab743da94c406dce3">&#9670;&nbsp;</a></span>KNOB_MODE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__KNOBS.html#ga01b1a33077e2fdfab743da94c406dce3">KNOB_MODE</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This module contains routines and classes for the processing of command line arguments.</p>
<p>Per knob mode - indicates how multiple appearances of the mode on the command line are handled </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga01b1a33077e2fdfab743da94c406dce3a0e000b764855535c8a3e1e760eb6b1b0"></a>KNOB_MODE_COMMENT&#160;</td><td class="fielddoc"><p>comment for knob family </p>
</td></tr>
<tr><td class="fieldname"><a id="gga01b1a33077e2fdfab743da94c406dce3a481b1b4bfea2ef7e5d78a540baf2ccab"></a>KNOB_MODE_WRITEONCE&#160;</td><td class="fielddoc"><p>single value, single write </p>
</td></tr>
<tr><td class="fieldname"><a id="gga01b1a33077e2fdfab743da94c406dce3a8333cb5099c6389724243859d29e2152"></a>KNOB_MODE_OVERWRITE&#160;</td><td class="fielddoc"><p>single value, overwrite, unless the user set the knob from command line. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga01b1a33077e2fdfab743da94c406dce3a562eddcaa2e28898581fa32c0fbe80c7"></a>KNOB_MODE_ACCUMULATE&#160;</td><td class="fielddoc"><p>single value, update </p>
</td></tr>
<tr><td class="fieldname"><a id="gga01b1a33077e2fdfab743da94c406dce3accb9cc7e7df2e0b3eb0b89cd1eabede4"></a>KNOB_MODE_APPEND&#160;</td><td class="fielddoc"><p>list of values, append </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga2fcfca47402cd938d252057d069f8d5f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2fcfca47402cd938d252057d069f8d5f">&#9670;&nbsp;</a></span>CheckAllKnobs()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">STATIC VOID KNOB_BASE::CheckAllKnobs </td>
          <td>(</td>
          <td class="paramtype">BOOL&#160;</td>
          <td class="paramname"><em>allowDashes</em> = <code>FALSE</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Check for duplicates amongst the declared knobs </p>

</div>
</div>
<a id="gacd9de79dcbf4f1a1c81b49b855946f21"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacd9de79dcbf4f1a1c81b49b855946f21">&#9670;&nbsp;</a></span>Compare()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int KNOB_BASE::Compare </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classKNOB__BASE.html">KNOB_BASE</a> &amp;&#160;</td>
          <td class="paramname"><em>k2</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>TRUE if two knobs are identical. </dd></dl>

</div>
</div>
<a id="ga7c9e1403f7c8a6fba37c3ac996d6be95"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7c9e1403f7c8a6fba37c3ac996d6be95">&#9670;&nbsp;</a></span>DisableKnob()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">STATIC VOID KNOB_BASE::DisableKnob </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>myname</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Disable a particular knob </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">myname</td><td>The particular knob to disable </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gad656bbb39020e93d3473e1b487f10454"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad656bbb39020e93d3473e1b487f10454">&#9670;&nbsp;</a></span>DisableKnobFamily()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">STATIC VOID KNOB_BASE::DisableKnobFamily </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>myfamily</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Disable all options within a given family of knobs </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">myfamily</td><td>The family to disable </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga7f643695d61e52c3661520856d833227"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7f643695d61e52c3661520856d833227">&#9670;&nbsp;</a></span>EnableKnob()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">STATIC VOID KNOB_BASE::EnableKnob </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>myname</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Enable a particular knob </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">myname</td><td>The knob to enable </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga425fd0c8dcca5474e370996bdf8d7e4f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga425fd0c8dcca5474e370996bdf8d7e4f">&#9670;&nbsp;</a></span>EnableKnobFamily()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">STATIC VOID KNOB_BASE::EnableKnobFamily </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>myfamily</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Enable all options within a given family of knobs </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">myfamily</td><td>The family to enable </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga774759bc7958969faaf7c0ab2b54140e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga774759bc7958969faaf7c0ab2b54140e">&#9670;&nbsp;</a></span>FindEnabledKnob()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">STATIC <a class="el" href="classKNOB__BASE.html">KNOB_BASE</a>* KNOB_BASE::FindEnabledKnob </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Search for a knob that is currently not disabled </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">myname</td><td>The name of the knob to search which is currently enabled </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gafdae42294d965667722be42650912e40"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafdae42294d965667722be42650912e40">&#9670;&nbsp;</a></span>FindFamily()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">STATIC <a class="el" href="classKNOB__BASE.html">KNOB_BASE</a>* KNOB_BASE::FindFamily </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Search for a knob family </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">family</td><td>The family of knobs to locate </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gacd1f4eb7e9c4b3aa933cf62d3612e31c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gacd1f4eb7e9c4b3aa933cf62d3612e31c">&#9670;&nbsp;</a></span>FindKnob()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">STATIC <a class="el" href="classKNOB__BASE.html">KNOB_BASE</a>* KNOB_BASE::FindKnob </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Locate a knob from the list of declared knobs </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">myname</td><td>The name of the knob to locate </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gae687bfe5eaee90493c5ebb582da31f74"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae687bfe5eaee90493c5ebb582da31f74">&#9670;&nbsp;</a></span>KNOB_BASE()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">KNOB_BASE::KNOB_BASE </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>myprefix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>myname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>myfamily</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>mydefault</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>mypurpose</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__KNOBS.html#ga01b1a33077e2fdfab743da94c406dce3">KNOB_MODE</a>&#160;</td>
          <td class="paramname"><em>mymode</em> = <code><a class="el" href="group__KNOBS.html#gga01b1a33077e2fdfab743da94c406dce3a481b1b4bfea2ef7e5d78a540baf2ccab">KNOB_MODE_WRITEONCE</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Create a new knob </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">myname</td><td>Name of the knob </td></tr>
    <tr><td class="paramname">myfamily</td><td>Family to which the knob belongs to </td></tr>
    <tr><td class="paramname">mydefault</td><td>The default value to which the knob is initialized with </td></tr>
    <tr><td class="paramname">mypurpose</td><td>A string that explains the purpose of the knob </td></tr>
    <tr><td class="paramname">mymode</td><td><a class="el" href="group__KNOBS.html#ga01b1a33077e2fdfab743da94c406dce3">KNOB_MODE</a> </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga6ea4921d7034f43bb963f4f90b6399dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6ea4921d7034f43bb963f4f90b6399dc">&#9670;&nbsp;</a></span>NumberOfKnobs()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">STATIC UINT32 KNOB_BASE::NumberOfKnobs </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The total number of knobs that have been declared </dd></dl>

</div>
</div>
<a id="ga39dcece2c6dd3d8c4662af611da7d9d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga39dcece2c6dd3d8c4662af611da7d9d5">&#9670;&nbsp;</a></span>SetByUser()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BOOL KNOB_BASE::SetByUser </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>TRUE if the user set the knob from command line, FALSE otherwise. </dd></dl>

</div>
</div>
<a id="ga6fbe7181260cd701b0fa884c2958074e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6fbe7181260cd701b0fa884c2958074e">&#9670;&nbsp;</a></span>StringKnobSummary()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">STATIC std::string KNOB_BASE::StringKnobSummary </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Print out a summary of all the knobs declared </p>

</div>
</div>
<a id="gaddac5ec80d3b48ee9a0ee09a561129e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaddac5ec80d3b48ee9a0ee09a561129e5">&#9670;&nbsp;</a></span>StringLongAll()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">STATIC std::string KNOB_BASE::StringLongAll </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>x </p>

</div>
</div>
<a id="ga705f2dbe45c3440e13b67e7921ad1625"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga705f2dbe45c3440e13b67e7921ad1625">&#9670;&nbsp;</a></span>TurnOnSetByUser()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">VOID KNOB_BASE::TurnOnSetByUser </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Mark that this knob was set from command line. </p>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="ga5cc9d51c1b4a85ad8c61e6861989f4e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5cc9d51c1b4a85ad8c61e6861989f4e4">&#9670;&nbsp;</a></span>KnobSlowAsserts</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classKNOB.html">KNOB</a>&lt; BOOL &gt; KnobSlowAsserts</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Knob for deciding whether using expensive sanity checks. </p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>
